/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Logica.Comandos;

import AccesoDatos.Fabricas.DAO;
import AccesoDatos.Fabricas.DAO.Opciones;
import Excepciones.NoConexionException;
import Logica.Fabricas.Comando;
import ObjetoDominio.Archivo;
import ObjetoDominio.Servidor;
import ObjetoDominio.Usuario;
import Session.Session;

/**
 *Comando que se encarga de subir un archivo al repositorio
 * @author familia
 */
public class ComandoCargarArchivo extends Thread implements Comando<Boolean> {

    private Archivo _archivo;
    private Servidor _servidor;
    private Usuario _usuario;
    
    public ComandoCargarArchivo(Archivo archivo, Servidor servidor, Usuario usuario){
        _archivo = archivo;
        _servidor = servidor;
        _usuario = usuario;
    }

    @Override
    public Boolean Ejecutar() {
        try {
            while(_archivo.getDescargado() < _archivo.getTamaño()){
            
                if(_servidor.isActivo())
                    DAO.ObtenerDAO(Opciones.socket).
                            ObtenerDAOArchivo(_servidor).CargarArchivo(_archivo, _usuario);
            }
        } catch (Exception e) {
            
        }
        return true;
    }
}
